Graphical user interfaces (GUIs) have become very popular in providing users of computers, particularly users of computers with a mouse or other input pointer devices, with access to computer software, including menus, software options, desktop components, images and other graphical objects. WINDOWS XP®, by Microsoft Corporation, of Redmond Wash., and MAC OS X®, by Apple Computer, of Cupertino Calif., are popular computer operating system implementations that allow users to interact and manipulate desktop software (e.g., word processing, graphic design, presentation software and web browsers) using a variety of graphical components. Those knowledgeable in the art will understand that a graphical component may be displayed visually to users as at least one image displayed on a computer monitor.
Techniques and popular conventions for managing graphical objects are well known by those skilled in the art of modern computer desktop usage. For example, in a windows-based environment such as that provided by WINDOWS XP, a desktop window object may be resized by clicking near the window border using a user input pointer, controlled by, for example, a mouse, and dragging the user input pointer to a different screen location in order to specify new window dimensions.
Techniques and conventions for interacting and manipulating graphical objects are well known and consistent across most applications. Users often select graphical objects for manipulation, for example, by moving a user input pointer into the region of the object and clicking the input pointer to initiate the selection and manipulation process.
More than one graphical object may be displayed in an application at a given instance. These graphical objects may be positioned on the display such that one or more graphical objects partially or fully overlap another graphical object. In these instances, it is of particular interest how the software discriminates, and the granularity at which the discrimination is made, between two or more overlapping graphical objects during the process of graphical object selection.
Two-dimensional computer-aided design and graphic arts programs (“graphics applications”), such as VISIO® and MICROSOFT OFFICE (Word, Power Point), by Microsoft Corporation, of Redmond, Wash., and ADOBE ILLUSTRATOR, by Adobe Systems Incorporated, of San Jose, Calif., generally allow users to organize their designs and artwork into layers, more or less analogous to sheets of acetate bound together. Each object on a layer has a stacking order such that objects can be on top of one another. Similarly, layers are also stacked on top of one another to form the final work. The final work is rendered as a two dimensional design to be viewed on a video display, printed, etc. To the extent that one or more graphical objects are layered over other graphical objects, some graphical objects may be partially or fully occluded in the rendered two-dimensional design. Programs conventionally provide a mechanism to reorder object layering (e.g. via menu controls to “bring to front”, “send to back”, etc.). Some programs also provide a “layers palette”—a taxonomical tree of the layer identifiers—allowing the user to select the layer on which to draw, reorder the layers by dragging and dropping them with the mouse, and move art from one layer to another.
In the prior art, selection of graphical objects is handled according to visibility on the screen, i.e., a particular graphical object can be selected with the mouse only when the mouse pointer is over a visible pixel of that graphical object. The visibility of pixels of the graphical object is decided according to the layering of graphical objects into a stacking order. Objects that are low in the stacking order can be largely or entirely occluded by objects (often larger objects) higher in the stacking order.
Although techniques for object selection are well known to those skilled in the art, these methods of object selection may be difficult and frustrating when a user attempts to select one of several objects that are in a state of object overlap or occlusion. To select objects in certain circumstances, users must first re-order the layering of objects before selecting the desired object and then re-order the objects again after completing the desired transformation, in the methods of the prior art. Such extraneous steps put an undesirable burden on the user. Such controls and steps may also be non-intuitive and difficult to learn for inexperienced users.
There may also be considerable discovery involved with finding and learning how these controls function in a foreign or new environment, which may cause significant frustration for new users.